//
//  Jasmin.hpp
//  Clock Signal
//
//  Created by Thomas Harte on 05/01/2020.
//  Copyright © 2020 Thomas Harte. All rights reserved.
//

#pragma once

#include "Components/1770/1770.hpp"
#include "Activity/Observer.hpp"
#include "DiskController.hpp"

namespace Oric {

class Jasmin: public DiskController {
public:
	Jasmin();

	void write(int address, uint8_t value);

	void set_activity_observer(Activity::Observer *observer);

private:
	void set_motor_on(bool on) final;
	bool motor_on_ = false;
	uint8_t selected_drives_ = 0;

	Activity::Observer *observer_ = nullptr;

	bool enable_overlay_ram_ = false;
	bool disable_basic_rom_ = false;
	void select_paged_item() {
		PagedItem item = PagedItem::RAM;
		if(!enable_overlay_ram_) {
			item = disable_basic_rom_ ? PagedItem::DiskROM : PagedItem::BASIC;
		}
		set_paged_item(item);
	}
};

}
